const { chromium } = require('playwright');//引用模拟浏览器
const { loginXHL } = require('./login')//引用连接钱包的方法


/**
 * 启动浏览器
 * @returns {Promise<Browser>} 启动的浏览器实例
 */
const preCondition = async () => {
    const pathToExtension = 'C:\\Users\\明达\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\nkbihfbeogaeaoehlefnkodbefgpgknn\\12.18.2_0';
    const userDataDir = '../../tmp/test-user-data-dir';
    return await chromium.launchPersistentContext(userDataDir, 
        {
            headless: false, 
            slowMo:500,
            timeout: 240000,
            args: [
                `--disable-extensions-except=${pathToExtension}`,
                `--load-extension=${pathToExtension}`
              ]
        }).catch(error => {
            console.error('浏览器启动失败详细信息:', {
                message: error.message,
                stack: error.stack,
                launchArgs: error.launchArgs || '未捕获参数'
            });
            process.exit(1);
        });
}

/**
 * 主函数，执行连接钱包的操作
 * @param {Browser} browser 启动的浏览器实例
 * @param {string} browserId 浏览器ID，用于区分不同的浏览器实例
 * @returns {Promise<void>} 无返回值
 * @example await main(browser); // 调用主函数
 */
const main = async (browser, browserId="") => {
    try {
        // TODO: 这里根据实际情况判断是否根据browserId请求执行参数
        await connectWallet(browser);
    } catch (error) {
        console.error('脚本运行出错:', error);
        process.exit(1); // 终止进程并返回错误码1
    }
};

if (require.main === module) { // 判断是否直接运行该脚本
    (async () => {
        const browser = await loginXHL(); // 启动浏览器
        await main(browser); // 运行主函数
        // await browser.close(); // 关闭浏览器
    })();
}

module.exports = {main};